1. The Field of the Invention
The present invention relates to methods for efficiently generating a selection representation for items in tree-type data structures. More particularly, the present invention relates to systems and methods for real-time construction of selection representations.
2. The Relevant Technology
Tree structures are used extensively in computer science and telecommunications because of the organized manner in which the hierarchical nature of a structure can be depicted in graphical form. The elements of the tree structure have certain terminology. The elements themselves are called “nodes.” The lines connecting elements are called “branches.” The starting node is often called the “root.” A node is a “parent” of another node if it is one step higher in the hierarchy. “Sibling” nodes share the same parent node and are referred to as children of the parent node. Nodes without children are called “end-nodes” or “leaves.”
Tree structures are used to depict all kinds of taxonomic knowledge, such as family trees, the Evolutionary tree, the grammatical structure of a language, the way web pages are logically ordered in a web site, etc. In a tree structure there is only one path from any point to any other point. Thus, each element can be defined by a particular path.
In a computer science environment, when a user is allowed to select various elements in a tree structure, the user must explicitly call out which items they choose to select. As can be appreciated, for a very large tree structure, the selection list created can become extensive. Furthermore, because tree structures can have multiple tiers of parent/children nodes, the user may want to select a parent node, but not select one or more children of the parent. This can result in extensive selection lists to accommodate selection and/or deselection of parent, children, grandchildren, great grandchildren nodes, etc.
FIG. 1 illustrates an exemplary selection list for use with a backup system. The user has selected certain files to be included in a backup. Each of the files or elements are represented by an explicit pathway so that a processor will know where in a file system to look for the element. In this exemplary hypothetical, the file system relates to files contained in the E:\ drive. Had the user wanted all of the files in the E drive to be backed up, it would be a simple matter for the selection system to simply list E:\. However, in the embodiment of FIG. 1, the user has determined that certain files are not to be backed up, and hence, the need to explicitly state all of the files that the user requests to be positively selected for saving. As can be seen, the selection list just for the E drive is extensive. When other drives are also considered, it is appreciated that the selection list can become extremely long depending on the number of files selected for backup.
The present invention provides systems and method for creating a selection representation of selected items in a tree structure. One aspect of the invention is a method including analyzing a first parent node of the first tree structure to determine if the first parent node is an inclusive selection, updating a field of the first parent node with a first node type indicator if the first parent node is an inclusive selection, analyzing a first child node of the first parent node to determine if the first child node is a different selection type than the first parent node, and updating a field of the first child node with a second node type indicator if the first child node is a different selection type than the first parent node.
Another aspect of the invention includes a computer system for generating a selection representation of items selected in a first tree structure, the computer system including a file system that stores data using a hierarchy, a graphical user interface that interacts with the file system to present the data in the first tree structure to reflect the hierarchy of the data in the file system and receives input from a user of at least one of (1) positive selections from a user of various items in the first tree structure for performing a predetermined function on the positively selected items, or (2) positive unselections from a user of various items in the first tree structure for excluding from performing a predetermined function on the positively unselected items, a selection module programmed to use the input of the user and generate a selection representation, the selection module operative to (a) analyze a first parent node of the first tree structure to determine if the first parent node is an inclusive selection, (b) update a field of the first parent node with a first node type indicator if the first parent node is an inclusive selection, (c) analyze a first child node of the first parent node to determine if the first child node is a different selection type than the first parent node, and (d) update a field of the first child node with a second node type indicator if the first child node is a different selection type than the first parent node.
Yet another aspect of the invention is a method of providing and selecting items in a first tree structure on the display, the method including retrieving a first tree structure that reflects a hierarchy of data from at least one of memory or storage, displaying the first tree structure on the display, receiving input from a user of at least one of (1) positive selections from a user of various items in the first tree structure for performing a predetermined function on the positively selected items, or (2) positive unselections from a user of various items in the first tree structure for excluding from performing a predetermined function on the positively unselected items, analyzing a first parent node of the first tree structure to determine if the first parent node is an inclusive selection, updating a field of the first parent node with a first node type indicator if the first parent node is an inclusive selection, analyzing a first child node of the first parent node to determine if the first child node is a different selection type than the first parent node, and updating a field of the first child node with a second node type indicator if the first child node is a different selection type than the first parent node.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Additional features will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the teaching herein. The features of the teachings herein may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.